A Design Pattern Language for Engineering (Parallel) Software
نویسنده
چکیده
The key to writing high quality parallel software is to develop a robust software design. This applies to the overall architecture of the program, but also to the lower layers in the software system where the concurrency and how it is expressed in the final program is defined. Technology to more systematically describe such designs and reuse them between software projects is the fundamental problem facing software for terascale processors. This is far more important than programming models and their supporting environments, since with a good design in hand, most any programming system can be used to actually generate the program’s source code.
منابع مشابه
Introduction to Design Patterns for Parallel Computing
The key to writing high quality parallel software is to develop a robust software design. This applies to the overall architecture of the program, but also to the lower layers in the software system where the concurrency and how it is expressed in the final program is defined. Technology to more systematically describe such designs and reuse them between software projects is the fundamental pro...
متن کاملCross-Platform Development of High Performance Applications Using Generic Programming
We investigate methods for creating highly portable parallel and distributed applications using the programming language C++. The paper elaborates on software engineering issues for efficiently mapping abstract class interfaces to system functionality — typically designed by applying the wrapper facade design pattern — on a large number of target platforms. We introduce a novel mapping techniqu...
متن کاملOur Pattern Language (OPL): A Design Pattern Language for Engineering (Parallel) Software
The trend has been well established [Asanovic09]: parallel processors will dominate most if not every niche of computing. This move to parallelism was not a triumphant march forward to celebrate our success in creating productive and efficient software environments for parallel microprocessors. Instead it was a sudden retreat from the immediate danger of building powerinefficient microprocessor...
متن کاملProcess-Oriented Patterns for Concurrent Software Engineering
Concurrency is unavoidable in modern software development, owing to the increasing complexity of computer systems and the widespread use of parallel computer hardware. Conventional approaches to concurrency are fraught with danger: in particular, uncontrolled access to shared resources, poor scalability and the inability of the programmer to reason about the correctness of a program. Process-or...
متن کاملPALLAS: Mapping Applications onto Manycore
Parallel programming using the current state-of-the-art in software engineering techniques is hard. Expertise in parallel programming is necessary to deliver good performance in applications; however, it is very common that domain experts lack the requisite expertise in parallel programming. In order to drive the computer science research toward effectively using the available parallel hardware...
متن کامل